// 导入
import axios from 'axios'
// 导入token工具函数
import { getToken } from './token'
// 创建根目录
const instance = axios.create({
  // 读取环境变量的语法就是 process.env.后面是自己取的名字
  baseURL: process.env.VUE_APP_URL
})

// 请求拦截器 统一携带token
// 添加请求拦截器
instance.interceptors.request.use(
  function (config) {
    // 通过config属性,拦截器可以获取请求体中添加的额外的数据
    // 就是你自己在axios中添加的各种信息都可以被它获取到,这里也可以传递一些信息
    // 在这个案例中,在需要token的请求接口中,定义它的方法的时候都添加
    // 了一个needToken: true 的属性,就是为了先判断一下,需要token,就
    // 给这个请求体加上token,如果不需要,就不加
    if (config.needToken === true) {
    // 在发送请求之前做些什么
      const _token = getToken()
      if (_token) {
        config.headers.authorization = `Bearer ${_token}`
      }
    }
    // 有token 就带token
    return config
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error)
  }
)

export default instance
